package j.quartz.ui.sys.conf;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;

import j.quartz.ui.common.utils.SpringContextUtil;

/**
 
 * 之所以在这里实现 ApplicationContextAware, DisposableBean 这两个接口，是因为 SpringContextUtil中applicationContext属性为静态，需要优先注册，
 * 而 @Configuration 配置类是提前spring上下文中执行的，需要在这里注册，不然配置类中使用上下文工具类的是时候会为空
	缺点是：有几个 @Configuration类，AppCtxConfig中的方法就会被执行几次，不过没什么影响
 * @author Wator
 */
public class AppCtxConfig implements ApplicationContextAware, DisposableBean {
	
	@Override
	public void destroy() throws Exception {
		SpringContextUtil.clearHolder();
	}

	@Override
	public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
		SpringContextUtil.setApplicationCxt(applicationContext);
	}
	
}
